{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# !pip install -U git+https://github.com/qubvel/efficientnet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "__file__ = 'EfficientNet-B5-9.8.9-23'\n",
    "__version__ = 'v11'\n",
    "fold = 3\n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"2,3\"\n",
    "n_gpus = len(os.environ[\"CUDA_VISIBLE_DEVICES\"].split(','))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.preprocessing.image import ImageDataGenerator\n",
    "from glob import glob\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import keras\n",
    "from keras.applications.inception_v3 import InceptionV3\n",
    "from keras.applications.xception import Xception\n",
    "from keras.applications.resnet50 import ResNet50\n",
    "from keras_applications.resnext import ResNeXt50\n",
    "from keras.applications.nasnet import NASNetLarge\n",
    "from keras.applications.inception_resnet_v2 import InceptionResNetV2\n",
    "from keras.models import *\n",
    "from keras.layers import *\n",
    "from keras.optimizers import *\n",
    "from keras.callbacks import *\n",
    "import PIL\n",
    "import time\n",
    "import efficientnet.keras as efn "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "path_data = '../garbage_classify/train_data_v2/'\n",
    "batch_size = 16 * n_gpus\n",
    "img_size = 456\n",
    "img_width = img_size\n",
    "img_height = img_size\n",
    "random_seed = 201908"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f8b2feb6470>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "labels_train_raw = pd.read_csv(f'../tmp/labels_train_{__version__}_fold{fold}.csv')\n",
    "labels_train_ext = pd.read_csv(f'../tmp/labels_ext.csv')\n",
    "\n",
    "labels_train = pd.concat([labels_train_raw,labels_train_ext])\n",
    "\n",
    "labels_valid = pd.read_csv(f'../tmp/labels_valid_{__version__}_fold{fold}.csv')\n",
    "n_classess = labels_train.label.unique().shape[0]\n",
    "labels_train.groupby(by='label').count().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels_train.label = labels_train.label.apply(lambda x: f'{x:02d}')\n",
    "labels_valid.label = labels_valid.label.apply(lambda x: f'{x:02d}')\n",
    "# labels_train['label_bin'].values = keras.utils.np_utils.to_categorical(\n",
    "#     labels_train.label, n_classess)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "({0: 1.0000628140703518,\n",
       "  1: 1.002581863979849,\n",
       "  2: 1.0392297650130549,\n",
       "  3: 3.015340909090909,\n",
       "  4: 0.9213541666666667,\n",
       "  5: 1.1211971830985916,\n",
       "  6: 1.050197889182058,\n",
       "  7: 1.1404727793696274,\n",
       "  8: 1.0995165745856355,\n",
       "  9: 0.915,\n",
       "  10: 1.0102157360406092,\n",
       "  11: 0.622887323943662,\n",
       "  12: 1.0529761904761905,\n",
       "  13: 1.0365234375,\n",
       "  14: 1.0614,\n",
       "  15: 0.925639534883721,\n",
       "  16: 0.9567908653846153,\n",
       "  17: 0.5870575221238938,\n",
       "  18: 1.0179667519181586,\n",
       "  19: 0.9277972027972028,\n",
       "  20: 1.672373949579832,\n",
       "  21: 0.5768478260869565,\n",
       "  22: 1.0529761904761905,\n",
       "  23: 1.1275495750708215,\n",
       "  24: 1.1025623268698062,\n",
       "  25: 0.5940671641791044,\n",
       "  26: 1.0786585365853658,\n",
       "  27: 0.8326882845188285,\n",
       "  28: 0.9827777777777778,\n",
       "  29: 1.0051136363636364,\n",
       "  30: 1.2361024844720496,\n",
       "  31: 1.0614,\n",
       "  32: 1.2024924471299094,\n",
       "  33: 1.2839516129032258,\n",
       "  34: 0.9087328767123287,\n",
       "  35: 1.0446850393700788,\n",
       "  36: 1.8863744075829383,\n",
       "  37: 1.2595727848101266,\n",
       "  38: 1.0934752747252747,\n",
       "  39: 0.9975563909774436},\n",
       " <matplotlib.axes._subplots.AxesSubplot at 0x7f8c20a9a6d8>)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.utils.class_weight import compute_class_weight\n",
    "class_weights = compute_class_weight('balanced', np.unique(labels_train.label), labels_train.label)\n",
    "d_class_weights = dict(enumerate(class_weights))\n",
    "d_class_weights,(labels_train.groupby(by='label').count()['fname'] * class_weights).plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 15921 validated image filenames belonging to 40 classes.\n",
      "Found 2912 validated image filenames belonging to 40 classes.\n"
     ]
    }
   ],
   "source": [
    "ig = ImageDataGenerator(preprocessing_function=efn.preprocess_input,\n",
    "                        width_shift_range=0.05,\n",
    "                        height_shift_range=0.05,\n",
    "                        brightness_range=(0.8, 1.4),\n",
    "                        horizontal_flip=True,\n",
    "                        vertical_flip=True)\n",
    "\n",
    "params_g = dict(\n",
    "    batch_size=batch_size,\n",
    "    # directory=path_data,\n",
    "    # class_mode='other',\n",
    "    x_col='fname',\n",
    "    y_col='label',\n",
    "    target_size=(img_width, img_height),\n",
    "    interpolation='lanczos',\n",
    "    seed=random_seed)\n",
    "\n",
    "train_g = ig.flow_from_dataframe(labels_train, path_data, **params_g)\n",
    "valid_g = ig.flow_from_dataframe(labels_valid[:-(labels_valid.shape[0] % batch_size)], path_data, shuffle=False, **params_g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/function.py:1007: calling Graph.create_op (from tensorflow.python.framework.ops) with compute_shapes is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Shapes are always computed; don't use the compute_shapes as it has no effect.\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n"
     ]
    }
   ],
   "source": [
    "base_model = efn.EfficientNetB5(weights='imagenet', include_top=False, input_shape=(img_width, img_height, 3),pooling='avg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 input_1\n",
      "1 stem_conv\n",
      "2 stem_bn\n",
      "3 stem_activation\n",
      "4 block1a_dwconv\n",
      "5 block1a_bn\n",
      "6 block1a_activation\n",
      "7 block1a_se_squeeze\n",
      "8 block1a_se_reshape\n",
      "9 block1a_se_reduce\n",
      "10 block1a_se_expand\n",
      "11 block1a_se_excite\n",
      "12 block1a_project_conv\n",
      "13 block1a_project_bn\n",
      "14 block1b_dwconv\n",
      "15 block1b_bn\n",
      "16 block1b_activation\n",
      "17 block1b_se_squeeze\n",
      "18 block1b_se_reshape\n",
      "19 block1b_se_reduce\n",
      "20 block1b_se_expand\n",
      "21 block1b_se_excite\n",
      "22 block1b_project_conv\n",
      "23 block1b_project_bn\n",
      "24 block1b_drop\n",
      "25 block1b_add\n",
      "26 block1c_dwconv\n",
      "27 block1c_bn\n",
      "28 block1c_activation\n",
      "29 block1c_se_squeeze\n",
      "30 block1c_se_reshape\n",
      "31 block1c_se_reduce\n",
      "32 block1c_se_expand\n",
      "33 block1c_se_excite\n",
      "34 block1c_project_conv\n",
      "35 block1c_project_bn\n",
      "36 block1c_drop\n",
      "37 block1c_add\n",
      "38 block2a_expand_conv\n",
      "39 block2a_expand_bn\n",
      "40 block2a_expand_activation\n",
      "41 block2a_dwconv\n",
      "42 block2a_bn\n",
      "43 block2a_activation\n",
      "44 block2a_se_squeeze\n",
      "45 block2a_se_reshape\n",
      "46 block2a_se_reduce\n",
      "47 block2a_se_expand\n",
      "48 block2a_se_excite\n",
      "49 block2a_project_conv\n",
      "50 block2a_project_bn\n",
      "51 block2b_expand_conv\n",
      "52 block2b_expand_bn\n",
      "53 block2b_expand_activation\n",
      "54 block2b_dwconv\n",
      "55 block2b_bn\n",
      "56 block2b_activation\n",
      "57 block2b_se_squeeze\n",
      "58 block2b_se_reshape\n",
      "59 block2b_se_reduce\n",
      "60 block2b_se_expand\n",
      "61 block2b_se_excite\n",
      "62 block2b_project_conv\n",
      "63 block2b_project_bn\n",
      "64 block2b_drop\n",
      "65 block2b_add\n",
      "66 block2c_expand_conv\n",
      "67 block2c_expand_bn\n",
      "68 block2c_expand_activation\n",
      "69 block2c_dwconv\n",
      "70 block2c_bn\n",
      "71 block2c_activation\n",
      "72 block2c_se_squeeze\n",
      "73 block2c_se_reshape\n",
      "74 block2c_se_reduce\n",
      "75 block2c_se_expand\n",
      "76 block2c_se_excite\n",
      "77 block2c_project_conv\n",
      "78 block2c_project_bn\n",
      "79 block2c_drop\n",
      "80 block2c_add\n",
      "81 block2d_expand_conv\n",
      "82 block2d_expand_bn\n",
      "83 block2d_expand_activation\n",
      "84 block2d_dwconv\n",
      "85 block2d_bn\n",
      "86 block2d_activation\n",
      "87 block2d_se_squeeze\n",
      "88 block2d_se_reshape\n",
      "89 block2d_se_reduce\n",
      "90 block2d_se_expand\n",
      "91 block2d_se_excite\n",
      "92 block2d_project_conv\n",
      "93 block2d_project_bn\n",
      "94 block2d_drop\n",
      "95 block2d_add\n",
      "96 block2e_expand_conv\n",
      "97 block2e_expand_bn\n",
      "98 block2e_expand_activation\n",
      "99 block2e_dwconv\n",
      "100 block2e_bn\n",
      "101 block2e_activation\n",
      "102 block2e_se_squeeze\n",
      "103 block2e_se_reshape\n",
      "104 block2e_se_reduce\n",
      "105 block2e_se_expand\n",
      "106 block2e_se_excite\n",
      "107 block2e_project_conv\n",
      "108 block2e_project_bn\n",
      "109 block2e_drop\n",
      "110 block2e_add\n",
      "111 block3a_expand_conv\n",
      "112 block3a_expand_bn\n",
      "113 block3a_expand_activation\n",
      "114 block3a_dwconv\n",
      "115 block3a_bn\n",
      "116 block3a_activation\n",
      "117 block3a_se_squeeze\n",
      "118 block3a_se_reshape\n",
      "119 block3a_se_reduce\n",
      "120 block3a_se_expand\n",
      "121 block3a_se_excite\n",
      "122 block3a_project_conv\n",
      "123 block3a_project_bn\n",
      "124 block3b_expand_conv\n",
      "125 block3b_expand_bn\n",
      "126 block3b_expand_activation\n",
      "127 block3b_dwconv\n",
      "128 block3b_bn\n",
      "129 block3b_activation\n",
      "130 block3b_se_squeeze\n",
      "131 block3b_se_reshape\n",
      "132 block3b_se_reduce\n",
      "133 block3b_se_expand\n",
      "134 block3b_se_excite\n",
      "135 block3b_project_conv\n",
      "136 block3b_project_bn\n",
      "137 block3b_drop\n",
      "138 block3b_add\n",
      "139 block3c_expand_conv\n",
      "140 block3c_expand_bn\n",
      "141 block3c_expand_activation\n",
      "142 block3c_dwconv\n",
      "143 block3c_bn\n",
      "144 block3c_activation\n",
      "145 block3c_se_squeeze\n",
      "146 block3c_se_reshape\n",
      "147 block3c_se_reduce\n",
      "148 block3c_se_expand\n",
      "149 block3c_se_excite\n",
      "150 block3c_project_conv\n",
      "151 block3c_project_bn\n",
      "152 block3c_drop\n",
      "153 block3c_add\n",
      "154 block3d_expand_conv\n",
      "155 block3d_expand_bn\n",
      "156 block3d_expand_activation\n",
      "157 block3d_dwconv\n",
      "158 block3d_bn\n",
      "159 block3d_activation\n",
      "160 block3d_se_squeeze\n",
      "161 block3d_se_reshape\n",
      "162 block3d_se_reduce\n",
      "163 block3d_se_expand\n",
      "164 block3d_se_excite\n",
      "165 block3d_project_conv\n",
      "166 block3d_project_bn\n",
      "167 block3d_drop\n",
      "168 block3d_add\n",
      "169 block3e_expand_conv\n",
      "170 block3e_expand_bn\n",
      "171 block3e_expand_activation\n",
      "172 block3e_dwconv\n",
      "173 block3e_bn\n",
      "174 block3e_activation\n",
      "175 block3e_se_squeeze\n",
      "176 block3e_se_reshape\n",
      "177 block3e_se_reduce\n",
      "178 block3e_se_expand\n",
      "179 block3e_se_excite\n",
      "180 block3e_project_conv\n",
      "181 block3e_project_bn\n",
      "182 block3e_drop\n",
      "183 block3e_add\n",
      "184 block4a_expand_conv\n",
      "185 block4a_expand_bn\n",
      "186 block4a_expand_activation\n",
      "187 block4a_dwconv\n",
      "188 block4a_bn\n",
      "189 block4a_activation\n",
      "190 block4a_se_squeeze\n",
      "191 block4a_se_reshape\n",
      "192 block4a_se_reduce\n",
      "193 block4a_se_expand\n",
      "194 block4a_se_excite\n",
      "195 block4a_project_conv\n",
      "196 block4a_project_bn\n",
      "197 block4b_expand_conv\n",
      "198 block4b_expand_bn\n",
      "199 block4b_expand_activation\n",
      "200 block4b_dwconv\n",
      "201 block4b_bn\n",
      "202 block4b_activation\n",
      "203 block4b_se_squeeze\n",
      "204 block4b_se_reshape\n",
      "205 block4b_se_reduce\n",
      "206 block4b_se_expand\n",
      "207 block4b_se_excite\n",
      "208 block4b_project_conv\n",
      "209 block4b_project_bn\n",
      "210 block4b_drop\n",
      "211 block4b_add\n",
      "212 block4c_expand_conv\n",
      "213 block4c_expand_bn\n",
      "214 block4c_expand_activation\n",
      "215 block4c_dwconv\n",
      "216 block4c_bn\n",
      "217 block4c_activation\n",
      "218 block4c_se_squeeze\n",
      "219 block4c_se_reshape\n",
      "220 block4c_se_reduce\n",
      "221 block4c_se_expand\n",
      "222 block4c_se_excite\n",
      "223 block4c_project_conv\n",
      "224 block4c_project_bn\n",
      "225 block4c_drop\n",
      "226 block4c_add\n",
      "227 block4d_expand_conv\n",
      "228 block4d_expand_bn\n",
      "229 block4d_expand_activation\n",
      "230 block4d_dwconv\n",
      "231 block4d_bn\n",
      "232 block4d_activation\n",
      "233 block4d_se_squeeze\n",
      "234 block4d_se_reshape\n",
      "235 block4d_se_reduce\n",
      "236 block4d_se_expand\n",
      "237 block4d_se_excite\n",
      "238 block4d_project_conv\n",
      "239 block4d_project_bn\n",
      "240 block4d_drop\n",
      "241 block4d_add\n",
      "242 block4e_expand_conv\n",
      "243 block4e_expand_bn\n",
      "244 block4e_expand_activation\n",
      "245 block4e_dwconv\n",
      "246 block4e_bn\n",
      "247 block4e_activation\n",
      "248 block4e_se_squeeze\n",
      "249 block4e_se_reshape\n",
      "250 block4e_se_reduce\n",
      "251 block4e_se_expand\n",
      "252 block4e_se_excite\n",
      "253 block4e_project_conv\n",
      "254 block4e_project_bn\n",
      "255 block4e_drop\n",
      "256 block4e_add\n",
      "257 block4f_expand_conv\n",
      "258 block4f_expand_bn\n",
      "259 block4f_expand_activation\n",
      "260 block4f_dwconv\n",
      "261 block4f_bn\n",
      "262 block4f_activation\n",
      "263 block4f_se_squeeze\n",
      "264 block4f_se_reshape\n",
      "265 block4f_se_reduce\n",
      "266 block4f_se_expand\n",
      "267 block4f_se_excite\n",
      "268 block4f_project_conv\n",
      "269 block4f_project_bn\n",
      "270 block4f_drop\n",
      "271 block4f_add\n",
      "272 block4g_expand_conv\n",
      "273 block4g_expand_bn\n",
      "274 block4g_expand_activation\n",
      "275 block4g_dwconv\n",
      "276 block4g_bn\n",
      "277 block4g_activation\n",
      "278 block4g_se_squeeze\n",
      "279 block4g_se_reshape\n",
      "280 block4g_se_reduce\n",
      "281 block4g_se_expand\n",
      "282 block4g_se_excite\n",
      "283 block4g_project_conv\n",
      "284 block4g_project_bn\n",
      "285 block4g_drop\n",
      "286 block4g_add\n",
      "287 block5a_expand_conv\n",
      "288 block5a_expand_bn\n",
      "289 block5a_expand_activation\n",
      "290 block5a_dwconv\n",
      "291 block5a_bn\n",
      "292 block5a_activation\n",
      "293 block5a_se_squeeze\n",
      "294 block5a_se_reshape\n",
      "295 block5a_se_reduce\n",
      "296 block5a_se_expand\n",
      "297 block5a_se_excite\n",
      "298 block5a_project_conv\n",
      "299 block5a_project_bn\n",
      "300 block5b_expand_conv\n",
      "301 block5b_expand_bn\n",
      "302 block5b_expand_activation\n",
      "303 block5b_dwconv\n",
      "304 block5b_bn\n",
      "305 block5b_activation\n",
      "306 block5b_se_squeeze\n",
      "307 block5b_se_reshape\n",
      "308 block5b_se_reduce\n",
      "309 block5b_se_expand\n",
      "310 block5b_se_excite\n",
      "311 block5b_project_conv\n",
      "312 block5b_project_bn\n",
      "313 block5b_drop\n",
      "314 block5b_add\n",
      "315 block5c_expand_conv\n",
      "316 block5c_expand_bn\n",
      "317 block5c_expand_activation\n",
      "318 block5c_dwconv\n",
      "319 block5c_bn\n",
      "320 block5c_activation\n",
      "321 block5c_se_squeeze\n",
      "322 block5c_se_reshape\n",
      "323 block5c_se_reduce\n",
      "324 block5c_se_expand\n",
      "325 block5c_se_excite\n",
      "326 block5c_project_conv\n",
      "327 block5c_project_bn\n",
      "328 block5c_drop\n",
      "329 block5c_add\n",
      "330 block5d_expand_conv\n",
      "331 block5d_expand_bn\n",
      "332 block5d_expand_activation\n",
      "333 block5d_dwconv\n",
      "334 block5d_bn\n",
      "335 block5d_activation\n",
      "336 block5d_se_squeeze\n",
      "337 block5d_se_reshape\n",
      "338 block5d_se_reduce\n",
      "339 block5d_se_expand\n",
      "340 block5d_se_excite\n",
      "341 block5d_project_conv\n",
      "342 block5d_project_bn\n",
      "343 block5d_drop\n",
      "344 block5d_add\n",
      "345 block5e_expand_conv\n",
      "346 block5e_expand_bn\n",
      "347 block5e_expand_activation\n",
      "348 block5e_dwconv\n",
      "349 block5e_bn\n",
      "350 block5e_activation\n",
      "351 block5e_se_squeeze\n",
      "352 block5e_se_reshape\n",
      "353 block5e_se_reduce\n",
      "354 block5e_se_expand\n",
      "355 block5e_se_excite\n",
      "356 block5e_project_conv\n",
      "357 block5e_project_bn\n",
      "358 block5e_drop\n",
      "359 block5e_add\n",
      "360 block5f_expand_conv\n",
      "361 block5f_expand_bn\n",
      "362 block5f_expand_activation\n",
      "363 block5f_dwconv\n",
      "364 block5f_bn\n",
      "365 block5f_activation\n",
      "366 block5f_se_squeeze\n",
      "367 block5f_se_reshape\n",
      "368 block5f_se_reduce\n",
      "369 block5f_se_expand\n",
      "370 block5f_se_excite\n",
      "371 block5f_project_conv\n",
      "372 block5f_project_bn\n",
      "373 block5f_drop\n",
      "374 block5f_add\n",
      "375 block5g_expand_conv\n",
      "376 block5g_expand_bn\n",
      "377 block5g_expand_activation\n",
      "378 block5g_dwconv\n",
      "379 block5g_bn\n",
      "380 block5g_activation\n",
      "381 block5g_se_squeeze\n",
      "382 block5g_se_reshape\n",
      "383 block5g_se_reduce\n",
      "384 block5g_se_expand\n",
      "385 block5g_se_excite\n",
      "386 block5g_project_conv\n",
      "387 block5g_project_bn\n",
      "388 block5g_drop\n",
      "389 block5g_add\n",
      "390 block6a_expand_conv\n",
      "391 block6a_expand_bn\n",
      "392 block6a_expand_activation\n",
      "393 block6a_dwconv\n",
      "394 block6a_bn\n",
      "395 block6a_activation\n",
      "396 block6a_se_squeeze\n",
      "397 block6a_se_reshape\n",
      "398 block6a_se_reduce\n",
      "399 block6a_se_expand\n",
      "400 block6a_se_excite\n",
      "401 block6a_project_conv\n",
      "402 block6a_project_bn\n",
      "403 block6b_expand_conv\n",
      "404 block6b_expand_bn\n",
      "405 block6b_expand_activation\n",
      "406 block6b_dwconv\n",
      "407 block6b_bn\n",
      "408 block6b_activation\n",
      "409 block6b_se_squeeze\n",
      "410 block6b_se_reshape\n",
      "411 block6b_se_reduce\n",
      "412 block6b_se_expand\n",
      "413 block6b_se_excite\n",
      "414 block6b_project_conv\n",
      "415 block6b_project_bn\n",
      "416 block6b_drop\n",
      "417 block6b_add\n",
      "418 block6c_expand_conv\n",
      "419 block6c_expand_bn\n",
      "420 block6c_expand_activation\n",
      "421 block6c_dwconv\n",
      "422 block6c_bn\n",
      "423 block6c_activation\n",
      "424 block6c_se_squeeze\n",
      "425 block6c_se_reshape\n",
      "426 block6c_se_reduce\n",
      "427 block6c_se_expand\n",
      "428 block6c_se_excite\n",
      "429 block6c_project_conv\n",
      "430 block6c_project_bn\n",
      "431 block6c_drop\n",
      "432 block6c_add\n",
      "433 block6d_expand_conv\n",
      "434 block6d_expand_bn\n",
      "435 block6d_expand_activation\n",
      "436 block6d_dwconv\n",
      "437 block6d_bn\n",
      "438 block6d_activation\n",
      "439 block6d_se_squeeze\n",
      "440 block6d_se_reshape\n",
      "441 block6d_se_reduce\n",
      "442 block6d_se_expand\n",
      "443 block6d_se_excite\n",
      "444 block6d_project_conv\n",
      "445 block6d_project_bn\n",
      "446 block6d_drop\n",
      "447 block6d_add\n",
      "448 block6e_expand_conv\n",
      "449 block6e_expand_bn\n",
      "450 block6e_expand_activation\n",
      "451 block6e_dwconv\n",
      "452 block6e_bn\n",
      "453 block6e_activation\n",
      "454 block6e_se_squeeze\n",
      "455 block6e_se_reshape\n",
      "456 block6e_se_reduce\n",
      "457 block6e_se_expand\n",
      "458 block6e_se_excite\n",
      "459 block6e_project_conv\n",
      "460 block6e_project_bn\n",
      "461 block6e_drop\n",
      "462 block6e_add\n",
      "463 block6f_expand_conv\n",
      "464 block6f_expand_bn\n",
      "465 block6f_expand_activation\n",
      "466 block6f_dwconv\n",
      "467 block6f_bn\n",
      "468 block6f_activation\n",
      "469 block6f_se_squeeze\n",
      "470 block6f_se_reshape\n",
      "471 block6f_se_reduce\n",
      "472 block6f_se_expand\n",
      "473 block6f_se_excite\n",
      "474 block6f_project_conv\n",
      "475 block6f_project_bn\n",
      "476 block6f_drop\n",
      "477 block6f_add\n",
      "478 block6g_expand_conv\n",
      "479 block6g_expand_bn\n",
      "480 block6g_expand_activation\n",
      "481 block6g_dwconv\n",
      "482 block6g_bn\n",
      "483 block6g_activation\n",
      "484 block6g_se_squeeze\n",
      "485 block6g_se_reshape\n",
      "486 block6g_se_reduce\n",
      "487 block6g_se_expand\n",
      "488 block6g_se_excite\n",
      "489 block6g_project_conv\n",
      "490 block6g_project_bn\n",
      "491 block6g_drop\n",
      "492 block6g_add\n",
      "493 block6h_expand_conv\n",
      "494 block6h_expand_bn\n",
      "495 block6h_expand_activation\n",
      "496 block6h_dwconv\n",
      "497 block6h_bn\n",
      "498 block6h_activation\n",
      "499 block6h_se_squeeze\n",
      "500 block6h_se_reshape\n",
      "501 block6h_se_reduce\n",
      "502 block6h_se_expand\n",
      "503 block6h_se_excite\n",
      "504 block6h_project_conv\n",
      "505 block6h_project_bn\n",
      "506 block6h_drop\n",
      "507 block6h_add\n",
      "508 block6i_expand_conv\n",
      "509 block6i_expand_bn\n",
      "510 block6i_expand_activation\n",
      "511 block6i_dwconv\n",
      "512 block6i_bn\n",
      "513 block6i_activation\n",
      "514 block6i_se_squeeze\n",
      "515 block6i_se_reshape\n",
      "516 block6i_se_reduce\n",
      "517 block6i_se_expand\n",
      "518 block6i_se_excite\n",
      "519 block6i_project_conv\n",
      "520 block6i_project_bn\n",
      "521 block6i_drop\n",
      "522 block6i_add\n",
      "523 block7a_expand_conv\n",
      "524 block7a_expand_bn\n",
      "525 block7a_expand_activation\n",
      "526 block7a_dwconv\n",
      "527 block7a_bn\n",
      "528 block7a_activation\n",
      "529 block7a_se_squeeze\n",
      "530 block7a_se_reshape\n",
      "531 block7a_se_reduce\n",
      "532 block7a_se_expand\n",
      "533 block7a_se_excite\n",
      "534 block7a_project_conv\n",
      "535 block7a_project_bn\n",
      "536 block7b_expand_conv\n",
      "537 block7b_expand_bn\n",
      "538 block7b_expand_activation\n",
      "539 block7b_dwconv\n",
      "540 block7b_bn\n",
      "541 block7b_activation\n",
      "542 block7b_se_squeeze\n",
      "543 block7b_se_reshape\n",
      "544 block7b_se_reduce\n",
      "545 block7b_se_expand\n",
      "546 block7b_se_excite\n",
      "547 block7b_project_conv\n",
      "548 block7b_project_bn\n",
      "549 block7b_drop\n",
      "550 block7b_add\n",
      "551 block7c_expand_conv\n",
      "552 block7c_expand_bn\n",
      "553 block7c_expand_activation\n",
      "554 block7c_dwconv\n",
      "555 block7c_bn\n",
      "556 block7c_activation\n",
      "557 block7c_se_squeeze\n",
      "558 block7c_se_reshape\n",
      "559 block7c_se_reduce\n",
      "560 block7c_se_expand\n",
      "561 block7c_se_excite\n",
      "562 block7c_project_conv\n",
      "563 block7c_project_bn\n",
      "564 block7c_drop\n",
      "565 block7c_add\n",
      "566 top_conv\n",
      "567 top_bn\n",
      "568 top_activation\n",
      "569 avg_pool\n"
     ]
    }
   ],
   "source": [
    "for i, layer in enumerate(base_model.layers):\n",
    "    print(i, layer.name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "for layer in base_model.layers[:287]:\n",
    "    layer.trainable=False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_1 (InputLayer)            (None, 456, 456, 3)  0                                            \n",
      "__________________________________________________________________________________________________\n",
      "stem_conv (Conv2D)              (None, 228, 228, 48) 1296        input_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "stem_bn (BatchNormalization)    (None, 228, 228, 48) 192         stem_conv[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "stem_activation (Activation)    (None, 228, 228, 48) 0           stem_bn[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "block1a_dwconv (DepthwiseConv2D (None, 228, 228, 48) 432         stem_activation[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "block1a_bn (BatchNormalization) (None, 228, 228, 48) 192         block1a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1a_activation (Activation) (None, 228, 228, 48) 0           block1a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_squeeze (GlobalAvera (None, 48)           0           block1a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_reshape (Reshape)    (None, 1, 1, 48)     0           block1a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_reduce (Conv2D)      (None, 1, 1, 12)     588         block1a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_expand (Conv2D)      (None, 1, 1, 48)     624         block1a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_excite (Multiply)    (None, 228, 228, 48) 0           block1a_activation[0][0]         \n",
      "                                                                 block1a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_project_conv (Conv2D)   (None, 228, 228, 24) 1152        block1a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_project_bn (BatchNormal (None, 228, 228, 24) 96          block1a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1b_dwconv (DepthwiseConv2D (None, 228, 228, 24) 216         block1a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_bn (BatchNormalization) (None, 228, 228, 24) 96          block1b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1b_activation (Activation) (None, 228, 228, 24) 0           block1b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_squeeze (GlobalAvera (None, 24)           0           block1b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_excite (Multiply)    (None, 228, 228, 24) 0           block1b_activation[0][0]         \n",
      "                                                                 block1b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_project_conv (Conv2D)   (None, 228, 228, 24) 576         block1b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_project_bn (BatchNormal (None, 228, 228, 24) 96          block1b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1b_drop (FixedDropout)     (None, 228, 228, 24) 0           block1b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_add (Add)               (None, 228, 228, 24) 0           block1b_drop[0][0]               \n",
      "                                                                 block1a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_dwconv (DepthwiseConv2D (None, 228, 228, 24) 216         block1b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block1c_bn (BatchNormalization) (None, 228, 228, 24) 96          block1c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1c_activation (Activation) (None, 228, 228, 24) 0           block1c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_squeeze (GlobalAvera (None, 24)           0           block1c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_excite (Multiply)    (None, 228, 228, 24) 0           block1c_activation[0][0]         \n",
      "                                                                 block1c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_project_conv (Conv2D)   (None, 228, 228, 24) 576         block1c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_project_bn (BatchNormal (None, 228, 228, 24) 96          block1c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1c_drop (FixedDropout)     (None, 228, 228, 24) 0           block1c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_add (Add)               (None, 228, 228, 24) 0           block1c_drop[0][0]               \n",
      "                                                                 block1b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_conv (Conv2D)    (None, 228, 228, 144 3456        block1c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_bn (BatchNormali (None, 228, 228, 144 576         block2a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_activation (Acti (None, 228, 228, 144 0           block2a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_dwconv (DepthwiseConv2D (None, 114, 114, 144 1296        block2a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2a_bn (BatchNormalization) (None, 114, 114, 144 576         block2a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2a_activation (Activation) (None, 114, 114, 144 0           block2a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_squeeze (GlobalAvera (None, 144)          0           block2a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_reshape (Reshape)    (None, 1, 1, 144)    0           block2a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_reduce (Conv2D)      (None, 1, 1, 6)      870         block2a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_expand (Conv2D)      (None, 1, 1, 144)    1008        block2a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_excite (Multiply)    (None, 114, 114, 144 0           block2a_activation[0][0]         \n",
      "                                                                 block2a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_project_conv (Conv2D)   (None, 114, 114, 40) 5760        block2a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_project_bn (BatchNormal (None, 114, 114, 40) 160         block2a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_bn (BatchNormali (None, 114, 114, 240 960         block2b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_activation (Acti (None, 114, 114, 240 0           block2b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2b_bn (BatchNormalization) (None, 114, 114, 240 960         block2b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2b_activation (Activation) (None, 114, 114, 240 0           block2b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_squeeze (GlobalAvera (None, 240)          0           block2b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_excite (Multiply)    (None, 114, 114, 240 0           block2b_activation[0][0]         \n",
      "                                                                 block2b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_project_bn (BatchNormal (None, 114, 114, 40) 160         block2b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2b_drop (FixedDropout)     (None, 114, 114, 40) 0           block2b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_add (Add)               (None, 114, 114, 40) 0           block2b_drop[0][0]               \n",
      "                                                                 block2a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_bn (BatchNormali (None, 114, 114, 240 960         block2c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_activation (Acti (None, 114, 114, 240 0           block2c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2c_bn (BatchNormalization) (None, 114, 114, 240 960         block2c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2c_activation (Activation) (None, 114, 114, 240 0           block2c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_squeeze (GlobalAvera (None, 240)          0           block2c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_excite (Multiply)    (None, 114, 114, 240 0           block2c_activation[0][0]         \n",
      "                                                                 block2c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_project_bn (BatchNormal (None, 114, 114, 40) 160         block2c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2c_drop (FixedDropout)     (None, 114, 114, 40) 0           block2c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_add (Add)               (None, 114, 114, 40) 0           block2c_drop[0][0]               \n",
      "                                                                 block2b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_bn (BatchNormali (None, 114, 114, 240 960         block2d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_activation (Acti (None, 114, 114, 240 0           block2d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2d_bn (BatchNormalization) (None, 114, 114, 240 960         block2d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2d_activation (Activation) (None, 114, 114, 240 0           block2d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_squeeze (GlobalAvera (None, 240)          0           block2d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_excite (Multiply)    (None, 114, 114, 240 0           block2d_activation[0][0]         \n",
      "                                                                 block2d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_project_bn (BatchNormal (None, 114, 114, 40) 160         block2d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2d_drop (FixedDropout)     (None, 114, 114, 40) 0           block2d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_add (Add)               (None, 114, 114, 40) 0           block2d_drop[0][0]               \n",
      "                                                                 block2c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_bn (BatchNormali (None, 114, 114, 240 960         block2e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_activation (Acti (None, 114, 114, 240 0           block2e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2e_bn (BatchNormalization) (None, 114, 114, 240 960         block2e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2e_activation (Activation) (None, 114, 114, 240 0           block2e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_squeeze (GlobalAvera (None, 240)          0           block2e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_excite (Multiply)    (None, 114, 114, 240 0           block2e_activation[0][0]         \n",
      "                                                                 block2e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_project_bn (BatchNormal (None, 114, 114, 40) 160         block2e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2e_drop (FixedDropout)     (None, 114, 114, 40) 0           block2e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_add (Add)               (None, 114, 114, 40) 0           block2e_drop[0][0]               \n",
      "                                                                 block2d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_bn (BatchNormali (None, 114, 114, 240 960         block3a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_activation (Acti (None, 114, 114, 240 0           block3a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_dwconv (DepthwiseConv2D (None, 57, 57, 240)  6000        block3a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3a_bn (BatchNormalization) (None, 57, 57, 240)  960         block3a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3a_activation (Activation) (None, 57, 57, 240)  0           block3a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_squeeze (GlobalAvera (None, 240)          0           block3a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_reshape (Reshape)    (None, 1, 1, 240)    0           block3a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block3a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block3a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_excite (Multiply)    (None, 57, 57, 240)  0           block3a_activation[0][0]         \n",
      "                                                                 block3a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_project_conv (Conv2D)   (None, 57, 57, 64)   15360       block3a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_project_bn (BatchNormal (None, 57, 57, 64)   256         block3a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_activation (Acti (None, 57, 57, 384)  0           block3b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3b_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3b_activation (Activation) (None, 57, 57, 384)  0           block3b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_squeeze (GlobalAvera (None, 384)          0           block3b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_excite (Multiply)    (None, 57, 57, 384)  0           block3b_activation[0][0]         \n",
      "                                                                 block3b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_project_bn (BatchNormal (None, 57, 57, 64)   256         block3b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3b_drop (FixedDropout)     (None, 57, 57, 64)   0           block3b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_add (Add)               (None, 57, 57, 64)   0           block3b_drop[0][0]               \n",
      "                                                                 block3a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_activation (Acti (None, 57, 57, 384)  0           block3c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3c_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3c_activation (Activation) (None, 57, 57, 384)  0           block3c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_squeeze (GlobalAvera (None, 384)          0           block3c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_excite (Multiply)    (None, 57, 57, 384)  0           block3c_activation[0][0]         \n",
      "                                                                 block3c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_project_bn (BatchNormal (None, 57, 57, 64)   256         block3c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3c_drop (FixedDropout)     (None, 57, 57, 64)   0           block3c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_add (Add)               (None, 57, 57, 64)   0           block3c_drop[0][0]               \n",
      "                                                                 block3b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_activation (Acti (None, 57, 57, 384)  0           block3d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3d_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3d_activation (Activation) (None, 57, 57, 384)  0           block3d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_squeeze (GlobalAvera (None, 384)          0           block3d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_excite (Multiply)    (None, 57, 57, 384)  0           block3d_activation[0][0]         \n",
      "                                                                 block3d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_project_bn (BatchNormal (None, 57, 57, 64)   256         block3d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3d_drop (FixedDropout)     (None, 57, 57, 64)   0           block3d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_add (Add)               (None, 57, 57, 64)   0           block3d_drop[0][0]               \n",
      "                                                                 block3c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_activation (Acti (None, 57, 57, 384)  0           block3e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3e_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3e_activation (Activation) (None, 57, 57, 384)  0           block3e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_squeeze (GlobalAvera (None, 384)          0           block3e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_excite (Multiply)    (None, 57, 57, 384)  0           block3e_activation[0][0]         \n",
      "                                                                 block3e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_project_bn (BatchNormal (None, 57, 57, 64)   256         block3e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3e_drop (FixedDropout)     (None, 57, 57, 64)   0           block3e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_add (Add)               (None, 57, 57, 64)   0           block3e_drop[0][0]               \n",
      "                                                                 block3d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block4a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_activation (Acti (None, 57, 57, 384)  0           block4a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_dwconv (DepthwiseConv2D (None, 29, 29, 384)  3456        block4a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4a_bn (BatchNormalization) (None, 29, 29, 384)  1536        block4a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4a_activation (Activation) (None, 29, 29, 384)  0           block4a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_squeeze (GlobalAvera (None, 384)          0           block4a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_reshape (Reshape)    (None, 1, 1, 384)    0           block4a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block4a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block4a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_excite (Multiply)    (None, 29, 29, 384)  0           block4a_activation[0][0]         \n",
      "                                                                 block4a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_project_conv (Conv2D)   (None, 29, 29, 128)  49152       block4a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_project_bn (BatchNormal (None, 29, 29, 128)  512         block4a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_activation (Acti (None, 29, 29, 768)  0           block4b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4b_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4b_activation (Activation) (None, 29, 29, 768)  0           block4b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_squeeze (GlobalAvera (None, 768)          0           block4b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_excite (Multiply)    (None, 29, 29, 768)  0           block4b_activation[0][0]         \n",
      "                                                                 block4b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_project_bn (BatchNormal (None, 29, 29, 128)  512         block4b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4b_drop (FixedDropout)     (None, 29, 29, 128)  0           block4b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_add (Add)               (None, 29, 29, 128)  0           block4b_drop[0][0]               \n",
      "                                                                 block4a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_activation (Acti (None, 29, 29, 768)  0           block4c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4c_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4c_activation (Activation) (None, 29, 29, 768)  0           block4c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_squeeze (GlobalAvera (None, 768)          0           block4c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_excite (Multiply)    (None, 29, 29, 768)  0           block4c_activation[0][0]         \n",
      "                                                                 block4c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_project_bn (BatchNormal (None, 29, 29, 128)  512         block4c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4c_drop (FixedDropout)     (None, 29, 29, 128)  0           block4c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_add (Add)               (None, 29, 29, 128)  0           block4c_drop[0][0]               \n",
      "                                                                 block4b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_activation (Acti (None, 29, 29, 768)  0           block4d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4d_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4d_activation (Activation) (None, 29, 29, 768)  0           block4d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_squeeze (GlobalAvera (None, 768)          0           block4d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_excite (Multiply)    (None, 29, 29, 768)  0           block4d_activation[0][0]         \n",
      "                                                                 block4d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_project_bn (BatchNormal (None, 29, 29, 128)  512         block4d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4d_drop (FixedDropout)     (None, 29, 29, 128)  0           block4d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_add (Add)               (None, 29, 29, 128)  0           block4d_drop[0][0]               \n",
      "                                                                 block4c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_activation (Acti (None, 29, 29, 768)  0           block4e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4e_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4e_activation (Activation) (None, 29, 29, 768)  0           block4e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_squeeze (GlobalAvera (None, 768)          0           block4e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_excite (Multiply)    (None, 29, 29, 768)  0           block4e_activation[0][0]         \n",
      "                                                                 block4e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_project_bn (BatchNormal (None, 29, 29, 128)  512         block4e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4e_drop (FixedDropout)     (None, 29, 29, 128)  0           block4e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_add (Add)               (None, 29, 29, 128)  0           block4e_drop[0][0]               \n",
      "                                                                 block4d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_activation (Acti (None, 29, 29, 768)  0           block4f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4f_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4f_activation (Activation) (None, 29, 29, 768)  0           block4f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_squeeze (GlobalAvera (None, 768)          0           block4f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_excite (Multiply)    (None, 29, 29, 768)  0           block4f_activation[0][0]         \n",
      "                                                                 block4f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_project_bn (BatchNormal (None, 29, 29, 128)  512         block4f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4f_drop (FixedDropout)     (None, 29, 29, 128)  0           block4f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_add (Add)               (None, 29, 29, 128)  0           block4f_drop[0][0]               \n",
      "                                                                 block4e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_activation (Acti (None, 29, 29, 768)  0           block4g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4g_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4g_activation (Activation) (None, 29, 29, 768)  0           block4g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_squeeze (GlobalAvera (None, 768)          0           block4g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_excite (Multiply)    (None, 29, 29, 768)  0           block4g_activation[0][0]         \n",
      "                                                                 block4g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_project_bn (BatchNormal (None, 29, 29, 128)  512         block4g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4g_drop (FixedDropout)     (None, 29, 29, 128)  0           block4g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_add (Add)               (None, 29, 29, 128)  0           block4g_drop[0][0]               \n",
      "                                                                 block4f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block5a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_activation (Acti (None, 29, 29, 768)  0           block5a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_dwconv (DepthwiseConv2D (None, 29, 29, 768)  19200       block5a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5a_bn (BatchNormalization) (None, 29, 29, 768)  3072        block5a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5a_activation (Activation) (None, 29, 29, 768)  0           block5a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_squeeze (GlobalAvera (None, 768)          0           block5a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_reshape (Reshape)    (None, 1, 1, 768)    0           block5a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block5a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block5a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_excite (Multiply)    (None, 29, 29, 768)  0           block5a_activation[0][0]         \n",
      "                                                                 block5a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_project_conv (Conv2D)   (None, 29, 29, 176)  135168      block5a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_project_bn (BatchNormal (None, 29, 29, 176)  704         block5a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_activation (Acti (None, 29, 29, 1056) 0           block5b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5b_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5b_activation (Activation) (None, 29, 29, 1056) 0           block5b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_squeeze (GlobalAvera (None, 1056)         0           block5b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5b_activation[0][0]         \n",
      "                                                                 block5b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_project_bn (BatchNormal (None, 29, 29, 176)  704         block5b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5b_drop (FixedDropout)     (None, 29, 29, 176)  0           block5b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_add (Add)               (None, 29, 29, 176)  0           block5b_drop[0][0]               \n",
      "                                                                 block5a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_activation (Acti (None, 29, 29, 1056) 0           block5c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5c_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5c_activation (Activation) (None, 29, 29, 1056) 0           block5c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_squeeze (GlobalAvera (None, 1056)         0           block5c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5c_activation[0][0]         \n",
      "                                                                 block5c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_project_bn (BatchNormal (None, 29, 29, 176)  704         block5c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5c_drop (FixedDropout)     (None, 29, 29, 176)  0           block5c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_add (Add)               (None, 29, 29, 176)  0           block5c_drop[0][0]               \n",
      "                                                                 block5b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_activation (Acti (None, 29, 29, 1056) 0           block5d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5d_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5d_activation (Activation) (None, 29, 29, 1056) 0           block5d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_squeeze (GlobalAvera (None, 1056)         0           block5d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5d_activation[0][0]         \n",
      "                                                                 block5d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_project_bn (BatchNormal (None, 29, 29, 176)  704         block5d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5d_drop (FixedDropout)     (None, 29, 29, 176)  0           block5d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_add (Add)               (None, 29, 29, 176)  0           block5d_drop[0][0]               \n",
      "                                                                 block5c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_activation (Acti (None, 29, 29, 1056) 0           block5e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5e_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5e_activation (Activation) (None, 29, 29, 1056) 0           block5e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_squeeze (GlobalAvera (None, 1056)         0           block5e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5e_activation[0][0]         \n",
      "                                                                 block5e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_project_bn (BatchNormal (None, 29, 29, 176)  704         block5e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5e_drop (FixedDropout)     (None, 29, 29, 176)  0           block5e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_add (Add)               (None, 29, 29, 176)  0           block5e_drop[0][0]               \n",
      "                                                                 block5d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_activation (Acti (None, 29, 29, 1056) 0           block5f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5f_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5f_activation (Activation) (None, 29, 29, 1056) 0           block5f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_squeeze (GlobalAvera (None, 1056)         0           block5f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5f_activation[0][0]         \n",
      "                                                                 block5f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_project_bn (BatchNormal (None, 29, 29, 176)  704         block5f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5f_drop (FixedDropout)     (None, 29, 29, 176)  0           block5f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_add (Add)               (None, 29, 29, 176)  0           block5f_drop[0][0]               \n",
      "                                                                 block5e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_activation (Acti (None, 29, 29, 1056) 0           block5g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5g_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5g_activation (Activation) (None, 29, 29, 1056) 0           block5g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_squeeze (GlobalAvera (None, 1056)         0           block5g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5g_activation[0][0]         \n",
      "                                                                 block5g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_project_bn (BatchNormal (None, 29, 29, 176)  704         block5g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5g_drop (FixedDropout)     (None, 29, 29, 176)  0           block5g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_add (Add)               (None, 29, 29, 176)  0           block5g_drop[0][0]               \n",
      "                                                                 block5f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block6a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_activation (Acti (None, 29, 29, 1056) 0           block6a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_dwconv (DepthwiseConv2D (None, 15, 15, 1056) 26400       block6a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6a_bn (BatchNormalization) (None, 15, 15, 1056) 4224        block6a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6a_activation (Activation) (None, 15, 15, 1056) 0           block6a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_squeeze (GlobalAvera (None, 1056)         0           block6a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block6a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block6a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block6a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_excite (Multiply)    (None, 15, 15, 1056) 0           block6a_activation[0][0]         \n",
      "                                                                 block6a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_project_conv (Conv2D)   (None, 15, 15, 304)  321024      block6a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_activation (Acti (None, 15, 15, 1824) 0           block6b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6b_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6b_activation (Activation) (None, 15, 15, 1824) 0           block6b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_squeeze (GlobalAvera (None, 1824)         0           block6b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6b_activation[0][0]         \n",
      "                                                                 block6b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6b_drop (FixedDropout)     (None, 15, 15, 304)  0           block6b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_add (Add)               (None, 15, 15, 304)  0           block6b_drop[0][0]               \n",
      "                                                                 block6a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_activation (Acti (None, 15, 15, 1824) 0           block6c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6c_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6c_activation (Activation) (None, 15, 15, 1824) 0           block6c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_squeeze (GlobalAvera (None, 1824)         0           block6c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6c_activation[0][0]         \n",
      "                                                                 block6c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6c_drop (FixedDropout)     (None, 15, 15, 304)  0           block6c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_add (Add)               (None, 15, 15, 304)  0           block6c_drop[0][0]               \n",
      "                                                                 block6b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_activation (Acti (None, 15, 15, 1824) 0           block6d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6d_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6d_activation (Activation) (None, 15, 15, 1824) 0           block6d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_squeeze (GlobalAvera (None, 1824)         0           block6d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6d_activation[0][0]         \n",
      "                                                                 block6d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6d_drop (FixedDropout)     (None, 15, 15, 304)  0           block6d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_add (Add)               (None, 15, 15, 304)  0           block6d_drop[0][0]               \n",
      "                                                                 block6c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_activation (Acti (None, 15, 15, 1824) 0           block6e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6e_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6e_activation (Activation) (None, 15, 15, 1824) 0           block6e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_squeeze (GlobalAvera (None, 1824)         0           block6e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6e_activation[0][0]         \n",
      "                                                                 block6e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6e_drop (FixedDropout)     (None, 15, 15, 304)  0           block6e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_add (Add)               (None, 15, 15, 304)  0           block6e_drop[0][0]               \n",
      "                                                                 block6d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_activation (Acti (None, 15, 15, 1824) 0           block6f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6f_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6f_activation (Activation) (None, 15, 15, 1824) 0           block6f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_squeeze (GlobalAvera (None, 1824)         0           block6f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6f_activation[0][0]         \n",
      "                                                                 block6f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6f_drop (FixedDropout)     (None, 15, 15, 304)  0           block6f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_add (Add)               (None, 15, 15, 304)  0           block6f_drop[0][0]               \n",
      "                                                                 block6e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_activation (Acti (None, 15, 15, 1824) 0           block6g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6g_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6g_activation (Activation) (None, 15, 15, 1824) 0           block6g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_squeeze (GlobalAvera (None, 1824)         0           block6g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6g_activation[0][0]         \n",
      "                                                                 block6g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6g_drop (FixedDropout)     (None, 15, 15, 304)  0           block6g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_add (Add)               (None, 15, 15, 304)  0           block6g_drop[0][0]               \n",
      "                                                                 block6f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6h_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_activation (Acti (None, 15, 15, 1824) 0           block6h_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6h_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6h_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6h_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6h_activation (Activation) (None, 15, 15, 1824) 0           block6h_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_squeeze (GlobalAvera (None, 1824)         0           block6h_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6h_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6h_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6h_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6h_activation[0][0]         \n",
      "                                                                 block6h_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6h_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6h_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6h_drop (FixedDropout)     (None, 15, 15, 304)  0           block6h_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_add (Add)               (None, 15, 15, 304)  0           block6h_drop[0][0]               \n",
      "                                                                 block6g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6h_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6i_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_activation (Acti (None, 15, 15, 1824) 0           block6i_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6i_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6i_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6i_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6i_activation (Activation) (None, 15, 15, 1824) 0           block6i_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_squeeze (GlobalAvera (None, 1824)         0           block6i_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6i_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6i_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6i_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6i_activation[0][0]         \n",
      "                                                                 block6i_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6i_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6i_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6i_drop (FixedDropout)     (None, 15, 15, 304)  0           block6i_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_add (Add)               (None, 15, 15, 304)  0           block6i_drop[0][0]               \n",
      "                                                                 block6h_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6i_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block7a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_activation (Acti (None, 15, 15, 1824) 0           block7a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 16416       block7a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7a_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block7a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7a_activation (Activation) (None, 15, 15, 1824) 0           block7a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_squeeze (GlobalAvera (None, 1824)         0           block7a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block7a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block7a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block7a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_excite (Multiply)    (None, 15, 15, 1824) 0           block7a_activation[0][0]         \n",
      "                                                                 block7a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_project_conv (Conv2D)   (None, 15, 15, 512)  933888      block7a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_conv (Conv2D)    (None, 15, 15, 3072) 1572864     block7a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_bn (BatchNormali (None, 15, 15, 3072) 12288       block7b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_activation (Acti (None, 15, 15, 3072) 0           block7b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_dwconv (DepthwiseConv2D (None, 15, 15, 3072) 27648       block7b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7b_bn (BatchNormalization) (None, 15, 15, 3072) 12288       block7b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7b_activation (Activation) (None, 15, 15, 3072) 0           block7b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_squeeze (GlobalAvera (None, 3072)         0           block7b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_reshape (Reshape)    (None, 1, 1, 3072)   0           block7b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_reduce (Conv2D)      (None, 1, 1, 128)    393344      block7b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_expand (Conv2D)      (None, 1, 1, 3072)   396288      block7b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_excite (Multiply)    (None, 15, 15, 3072) 0           block7b_activation[0][0]         \n",
      "                                                                 block7b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_project_conv (Conv2D)   (None, 15, 15, 512)  1572864     block7b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7b_drop (FixedDropout)     (None, 15, 15, 512)  0           block7b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_add (Add)               (None, 15, 15, 512)  0           block7b_drop[0][0]               \n",
      "                                                                 block7a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_conv (Conv2D)    (None, 15, 15, 3072) 1572864     block7b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_bn (BatchNormali (None, 15, 15, 3072) 12288       block7c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_activation (Acti (None, 15, 15, 3072) 0           block7c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_dwconv (DepthwiseConv2D (None, 15, 15, 3072) 27648       block7c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7c_bn (BatchNormalization) (None, 15, 15, 3072) 12288       block7c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7c_activation (Activation) (None, 15, 15, 3072) 0           block7c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_squeeze (GlobalAvera (None, 3072)         0           block7c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_reshape (Reshape)    (None, 1, 1, 3072)   0           block7c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_reduce (Conv2D)      (None, 1, 1, 128)    393344      block7c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_expand (Conv2D)      (None, 1, 1, 3072)   396288      block7c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_excite (Multiply)    (None, 15, 15, 3072) 0           block7c_activation[0][0]         \n",
      "                                                                 block7c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_project_conv (Conv2D)   (None, 15, 15, 512)  1572864     block7c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7c_drop (FixedDropout)     (None, 15, 15, 512)  0           block7c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_add (Add)               (None, 15, 15, 512)  0           block7c_drop[0][0]               \n",
      "                                                                 block7b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "top_conv (Conv2D)               (None, 15, 15, 2048) 1048576     block7c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "top_bn (BatchNormalization)     (None, 15, 15, 2048) 8192        top_conv[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "top_activation (Activation)     (None, 15, 15, 2048) 0           top_bn[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "avg_pool (GlobalAveragePooling2 (None, 2048)         0           top_activation[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "dense_1 (Dense)                 (None, 40)           81960       avg_pool[0][0]                   \n",
      "==================================================================================================\n",
      "Total params: 28,595,480\n",
      "Trainable params: 26,331,176\n",
      "Non-trainable params: 2,264,304\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "x = base_model.output\n",
    "\n",
    "# x = Dense(128)(x)\n",
    "# x = BatchNormalization()(x)\n",
    "# x=Dropout(0.5)(x)\n",
    "\n",
    "DENSE_KERNEL_INITIALIZER = {\n",
    "    'class_name': 'VarianceScaling',\n",
    "    'config': {\n",
    "        'scale': 1. / 3.,\n",
    "        'mode': 'fan_out',\n",
    "        'distribution': 'uniform'\n",
    "    }\n",
    "}\n",
    "predictions = Dense(n_classess, activation='softmax',kernel_initializer=DENSE_KERNEL_INITIALIZER)(x)\n",
    "model = Model(inputs=base_model.input, outputs=predictions)\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "if n_gpus > 1:\n",
    "    from keras.utils import multi_gpu_model\n",
    "    model = multi_gpu_model(model,gpus=n_gpus)\n",
    "\n",
    "with open(f'../tmp/model_{__file__}.json','w') as f:\n",
    "    model_json = model.to_json()\n",
    "    f.write(model_json)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "ckpt = ModelCheckpoint('../tmp/ckpt-'+__file__+'-Epoch_{epoch:03d}-acc_{acc:.5f}-val_acc_{val_acc:.5f}.h5', save_best_only=True, monitor='val_acc',verbose=1)\n",
    "\n",
    "estop = EarlyStopping(monitor='val_acc', min_delta=1e-7,verbose=1, patience=20)\n",
    "\n",
    "reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.5,patience=3, min_lr=1e-5,verbose=1)\n",
    "\n",
    "csv_logger = CSVLogger(f'../tmp/training_{__file__}.log',append=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Epoch 1/100\n",
      "497/497 [==============================] - 497s 999ms/step - loss: 0.5687 - acc: 0.8772 - val_loss: 0.9952 - val_acc: 0.7521\n",
      "\n",
      "Epoch 00001: val_acc improved from -inf to 0.75206, saving model to ../tmp/ckpt-EfficientNet-B5-9.8.9-23-Epoch_001-acc_0.87720-val_acc_0.75206.h5\n",
      "Epoch 2/100\n",
      "208/497 [===========>..................] - ETA: 3:38 - loss: 0.2533 - acc: 0.9328"
     ]
    }
   ],
   "source": [
    "model.compile(optimizer=Adam(lr=1e-4), loss='categorical_crossentropy', metrics=['accuracy'])\n",
    "\n",
    "model.fit_generator(\n",
    "    train_g,\n",
    "    # steps_per_epoch=100,\n",
    "    steps_per_epoch=train_g.n // batch_size,\n",
    "    epochs=100,\n",
    "    class_weight=d_class_weights,\n",
    "    callbacks=[ckpt, estop,reduce_lr,csv_logger],\n",
    "    validation_data=valid_g,\n",
    "    # validation_steps=1,\n",
    "    workers=16,\n",
    "    use_multiprocessing=True,\n",
    "    validation_steps=valid_g.n // batch_size\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!ls"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
